package stru1.day6;

/**
 * 387. 字符串中的第一个唯一字符
 */
public class Solution1 {
    public static void main(String[] args) {
        System.out.println(firstUniqChar("leetcode"));
        System.out.println(firstUniqChar("loveleetcode"));
        System.out.println(firstUniqChar("aabb"));
    }

    /**
     * 可以用哈希计数或队列来做，但由于题目限定小写字母，数组计数更高效
     */
    public static int firstUniqChar(String s) {
        char[] charArray = s.toCharArray();
        char[] chars = new char[26];

        for (char c : charArray) {
            chars[c - 'a'] += 1;
        }

        for (int i = 0; i < charArray.length; i++) {
            if (chars[charArray[i] - 'a'] == 1) return i;
        }
        return -1;
    }
}
